//
//  ByCoreDataBase.h
//  beibei_ios
//
//  Created by pro on 16/5/7.
//  Copyright © 2016年 hebidu. All rights reserved.
//

#import <Foundation/Foundation.h>

#import "ByCoreCacheModel.h" // 缓存数据类

#import "ByCoreLogModel.h"   // 打印model

/** sqlite3 数据库类 */
@interface ByCoreDataBase : NSObject

/** 打印db文件所在绝对路径 */
+ (void)logDBPath;

#pragma mark - cache
/** 查看所有的cache model，即缓存在数据库中的所有数据 */
+ (NSArray *)query;

/** 根据键名（key） 来查找cache model，即找到缓存中对应键名的数据 */
+ (ByCoreCacheModel *)queryWithKey:(NSString *)key;

/** 存储数据到本地的数据库中: 键名（key）存在则覆盖原有记录，反之添加新记录
 key:对应数据的键名
 value:对应需要保存的数据（都是NSData，其他数据转换而来）
 type:数据原始的类型（转换成NSData之前的数据）
 updateTime:上次保存的时间戳
 expireTime:过期时间（时间间隔，非时间戳）
 */
+ (void)setItemWithKey:(NSString *)key
                 value:(NSData *)value
                  type:(NSString *)type
            updateTime:(NSInteger)updateTime
            expireTime:(NSInteger)expireTime;

/** 删除 对应该键名（key）的记录 */
+ (void)deleteItemWithKey:(NSString *)key;



#pragma mark - log
/** 查找 时间戳大于某个时间戳的打印记录 ByCoreLogModel */
+ (NSArray *)queryLogsAfterTime:(NSInteger)time;


/** 添加新记录 */
+ (void)setLogWithFunc:(NSString *)func
                  line:(NSInteger)line
                  time:(NSInteger)time
               content:(NSData *)content
               context:(NSData *)context;


#pragma mark - address
/** 获得所有的省份 */
+ (NSArray *)queryAllProvinces;
/** 更具省份id获得所有的城市 */
+ (NSArray *)queryAllCitysWithProvinceID:(NSString *)proviceID;
/** 根据城市id获得所有的地区 */
+ (NSArray *)queryAllAreasWithCityID:(NSString *)cityID;

@end
